/*
* CreateShop.java
*
* Created on 03-ago-2011, 16:00:17
*/
package totalpos;
import java.sql.SQLException;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import javax.swing.JInternalFrame;
import javax.swing.table.DefaultTableModel;
/**
*
* @author shidalgo
*/
public class CreateShop extends JInternalFrame {
public boolean isOk = false;
public boolean created = false;
/** Creates new form CreateShop */
public CreateShop() {
initComponents();
System.out.println("[" + Shared.now() + "] " + this.getClass().getName() + " " + Shared.lineNumber() + " Invocando constructor");
DefaultTableModel model = (DefaultTableModel) storeTable.getModel();
model.setRowCount(0);
if ( !Shared.getConfig().containsKey("storeName") ){
titleLabel.setText("Crear Tienda");
this.setTitle("Crear Tienda");
setClosable(false);
setResizable(false);
cancelButton.setEnabled(false);
}else{
try {
titleLabel.setText("Modificar Tienda");
this.setTitle("Modificar Tienda");
nameFieldText.setText(Shared.getConfig("storeName"));
descriptionFieldText.setText(Shared.getConfig("storeDescription"));
List<Store> stores = ConnectionDrivers.listStores();
for (Store store : stores) {
String[] s = {store.getId(), store.getDescription()};
model.addRow(s);
}
nameFieldText.setEditable(!ConnectionDrivers.hasMovements());
} catch (SQLException ex) {
MessageBox msg = new MessageBox(MessageBox.SGN_DANGER, "Problemas con la base de datos.",ex);
msg.show(this);
return;
}
}
isOk = true;
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
titleLabel = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
nameFieldText = new javax.swing.JTextField();
descriptionFieldText = new javax.swing.JTextField();
cancelButton = new javax.swing.JButton();
acceptButton = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
storeTable = new javax.swing.JTable();
addStore = new javax.swing.JButton();
deleteStore = new javax.swing.JButton();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
setClosable(true);
setTitle("Crear/Modificar Tienda");
addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
formMouseMoved(evt);
}
});
titleLabel.setFont(new java.awt.Font("Courier New", 1, 18));
titleLabel.setName("titleLabel"); // NOI18N
jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/totalpos/resources/Etiquetas.jpg"))); // NOI18N
jLabel2.setText("Código");
jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jLabel2.setName("jLabel2"); // NOI18N
jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/totalpos/resources/Etiquetas.jpg"))); // NOI18N
jLabel3.setText("Descripción");
jLabel3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jLabel3.setName("jLabel3"); // NOI18N
nameFieldText.setName("nameFieldText"); // NOI18N
nameFieldText.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
nameFieldTextMouseMoved(evt);
}
});
descriptionFieldText.setName("descriptionFieldText"); // NOI18N
descriptionFieldText.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
descriptionFieldTextMouseMoved(evt);
}
});
cancelButton.setText("Cancelar");
cancelButton.setName("cancelButton"); // NOI18N
cancelButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
cancelButtonMouseMoved(evt);
}
});
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
acceptButton.setText("Aceptar");
acceptButton.setName("acceptButton"); // NOI18N
acceptButton.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
acceptButtonMouseMoved(evt);
}
});
acceptButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
acceptButtonActionPerformed(evt);
}
});
jLabel1.setText("* = Campo Obligatorio");
jLabel1.setName("jLabel1"); // NOI18N
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Almacenes - Obligatorio al menos uno (1)"));
jPanel1.setName("jPanel1"); // NOI18N
jScrollPane1.setName("jScrollPane1"); // NOI18N
storeTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null},
{null, null},
{null, null},
{null, null}
},
new String [] {
"Código", "Descripción"
}
));
storeTable.setName("storeTable"); // NOI18N
storeTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
jScrollPane1.setViewportView(storeTable);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 383, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 174, Short.MAX_VALUE)
);
addStore.setText("Agregar Almacen");
addStore.setName("addStore"); // NOI18N
addStore.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addStoreActionPerformed(evt);
}
});
deleteStore.setText("Eliminar Almacen");
deleteStore.setName("deleteStore"); // NOI18N
deleteStore.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteStoreActionPerformed(evt);
}
});
jLabel4.setText("*");
jLabel4.setName("jLabel4"); // NOI18N
jLabel5.setText("*");
jLabel5.setName("jLabel5"); // NOI18N
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(titleLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 399, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(nameFieldText, javax.swing.GroupLayout.DEFAULT_SIZE, 278, Short.MAX_VALUE)
.addComponent(descriptionFieldText, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 278, Short.MAX_VALUE)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 105, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(deleteStore, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(acceptButton, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cancelButton, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(addStore, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(titleLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(nameFieldText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(descriptionFieldText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(addStore)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(deleteStore)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 14, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cancelButton)
.addComponent(jLabel1)
.addComponent(acceptButton))
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
this.dispose();
}//GEN-LAST:event_cancelButtonActionPerformed
private void acceptButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_acceptButtonActionPerformed
if ( nameFieldText.getText().isEmpty() ){
MessageBox msg = new MessageBox(MessageBox.SGN_CAUTION, "El código no puede ser vacío");
msg.show(this);
return;
}
if ( descriptionFieldText.getText().isEmpty() ){
MessageBox msg = new MessageBox(MessageBox.SGN_CAUTION, "La descripción no puede ser vacía");
msg.show(this);
return;
}
if ( storeTable.getRowCount() == 0 ){
MessageBox msg = new MessageBox(MessageBox.SGN_CAUTION, "Debe haber al menos un almacen");
msg.show(this);
return;
}
DefaultTableModel model = (DefaultTableModel) storeTable.getModel();
Set<String> s = new TreeSet<String>();
for (int i = 0; i < model.getRowCount(); i++) {
if ( model.getValueAt(i, 0) == null || model.getValueAt(i, 1) == null ||
((String)model.getValueAt(i, 0)).isEmpty() || ((String)model.getValueAt(i, 1)).isEmpty() ){
MessageBox msg = new MessageBox(MessageBox.SGN_CAUTION, "Todos los campos son obligatorios. No pueden haber almacenes con campos vacíos.");
msg.show(this);
return;
}
if ( s.contains(model.getValueAt(i, 0)) ){
MessageBox msg = new MessageBox(MessageBox.SGN_CAUTION, "Los códigos no se pueden repetir");
msg.show(this);
return;
}
s.add((String) model.getValueAt(i, 0));
}
try {
ConnectionDrivers.saveConfig("storeName", nameFieldText.getText());
ConnectionDrivers.saveConfig("storeDescription", descriptionFieldText.getText());
ConnectionDrivers.deleteAllStores();
ConnectionDrivers.createStore(model);
MessageBox msg = new MessageBox(MessageBox.SGN_SUCCESS, "Guardado correctamente");
msg.show(this);
created = true;
ConnectionDrivers.initializeConfig();
this.dispose();
System.out.println("[" + Shared.now() + "] " + this.getClass().getName() + " " + Shared.lineNumber() + " Terminado de guardar todo");
} catch (SQLException ex) {
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "Problemas con la base de datos.",ex);
msb.show(this);
this.dispose();
Shared.reload();
}
}//GEN-LAST:event_acceptButtonActionPerformed
private void formMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseMoved
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_formMouseMoved
private void descriptionFieldTextMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_descriptionFieldTextMouseMoved
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_descriptionFieldTextMouseMoved
private void nameFieldTextMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_nameFieldTextMouseMoved
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_nameFieldTextMouseMoved
private void acceptButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_acceptButtonMouseMoved
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_acceptButtonMouseMoved
private void cancelButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_cancelButtonMouseMoved
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_cancelButtonMouseMoved
private void addStoreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addStoreActionPerformed
DefaultTableModel model = (DefaultTableModel) storeTable.getModel();
model.setRowCount(model.getRowCount()+1);
}//GEN-LAST:event_addStoreActionPerformed
private void deleteStoreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteStoreActionPerformed
if ( storeTable.getSelectedRow() != -1 ){
DefaultTableModel model = (DefaultTableModel) storeTable.getModel();
model.removeRow(storeTable.getSelectedRow());
}else{
MessageBox msg = new MessageBox(MessageBox.SGN_CAUTION, "Debe seleccionar un almacén!");
msg.show(this);
}
}//GEN-LAST:event_deleteStoreActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton acceptButton;
private javax.swing.JButton addStore;
private javax.swing.JButton cancelButton;
private javax.swing.JButton deleteStore;
private javax.swing.JTextField descriptionFieldText;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField nameFieldText;
private javax.swing.JTable storeTable;
private javax.swing.JLabel titleLabel;
// End of variables declaration//GEN-END:variables
}